Operating systems like OS/2, Windows95 or MacOS (registered trademarks by IBM Corp., Microsoft Corp. and Apple Computer Inc., respectively) commonly provide a virtual electronic desktop as a human-machine interface. Application programs running under those operating systems and respective data resources are represented as desktop objects, where inactive desktop objects (icons) can be activated by use of a pointer device (mouse pointer) and hereby change into active objects usually represented by application windows (window sessions). In those windows the operations and processes of according application programs are performed.
This GUI concept causes the problem that, when a user's desktop becomes busy and cluttered with multiple icons and windows, the lack of available screen makes it very difficult to navigate between various sessions represented by those icons or windows, because often one or more windows or icons cover one or more icons which are then hidden beneath those windows or icons, respectively. A common way for finding an application window that is not clearly visible, or activating such "hidden" icons, by use of a mouse pointer, is to rearrange the position of a covering window, or to minimize that window to an icon.
Thereupon, generic operating systems commonly provide a mechanism to bring an icon to focus by positioning the mouse pointer on the icon and clicking on the mouse select button. Often times, users have a plurality of icons (containers) on their desktop whereby some are viewable and some are obstructed. Therefore users must manually rearrange the position of the icons to view a related set of icons. This can be a tedious job when many icons are on the desktop and some are obstructed by others. In an article by A. Salahshour and M. Williams, published in IBM Technical Disclosure Bulletin, vol. 37, no. 1, January 1994, pages 657-658, a respective desktop rearrangement methodology, based on incoming calls for desktop objects, is proposed. A described control mechanism detects an incoming call and automatically surfaces the icons and windows associated to that call. Further to maximize the usage of the viewing display area, the icons and windows are rearranged and re-sized to best fit the display area.
In addition, there exist more adequate approaches for solving the above problem. Some of the known desktop systems like the Presentation Manager (PM) under OS/2 provide a so-called "launchpad" usually comprising smaller icons from which frequently used desktop objects can be activated. Those launchpads have a "float on top" functionality which ensures that they are always visible and can not be masked by an application window. This approach has the disadvantage that the viewport for an active application program is reduced by the permanent visibility of the launchpad. Beyond that such a static solution is less flexible i.e. allows only small adaptations of the desktop, and is only a very reduced representation of a real (physical) desktop. Further that static approach does not allow a full-screen view of a window with a high priority for visibility.
Another approach enables activation of an application program by a specific combination of key strokes or mouse operations. For instance, OS/2 provides a general-purpose window ("icon park") for displaying icons which are currently active. In the icon park all icons can be visualized whether the window itself is visible or not. The icon park is a functional window that can be moved, scrolled and re-sized. In particular, the icon park has the capability to re-surface an open but hidden window from the background screen. More detailed information about the icon park concept is contained in an article by R. Hillis et al. published in IBM Technical Disclosure Bulletin, vol. 9, no. 11, Nov. 1991, entitled "Icon Park".
There exist a number of solutions specifically concerning the problem of hidden windows. A first approach is disclosed in U.S. application for Ser. No. 923,698 (IBM docketno. DA992016) assigned to the present assignee and entitled "Method of and Apparatus for Providing Navigation to a Hidden Desktop Window". Hereby a user is provided a capability to automatically pop into the foreground of the desktop a hidden window or a plurality of hidden windows. The selection of which hidden window to pop into the foreground is based on a priority queue which may depend on the area of a window covered by other windows and/or the number of other windows covering a window.
A second approach, a method and system which allow to identify a window on the desktop even when the title bar and list objects are covered up by other windows, is disclosed in a publication by W. Johnson and O. Weber published in IBM Technical Disclosure Bulletin, vol. 36, no. 8, Aug. 1993, pages 143-144. The system causes the title bar of a hidden window to move to another position on that window which is still visible to the user. Further, when only the title bar is masked by another window, the title bar is repositioned at a visible portion of that partially hidden window.
A further method to reveal hidden icons which are displayed within a viewport (window) and obscured behind other windows is disclosed in U.S. application for Ser. No. 703,434 (IBM docketno. DA991001) assigned to the present assignee and entitled "Method to Reveal Hidden Target Objects During Graphic User Interface Drag and Drop Operations". That approach is particularly related to a drag and drop scenario where an icon shall be moved from one (source) viewport to another (target) viewport, wherein the target viewport is not visible since being hidden by another viewport, for example the source viewport. Hereby it is particularly assumed that one of a set of selectable visual icons is to be relocated to an exposed portion of the target viewport. That movement between the viewports triggers an automatic rearranging of the order in which the viewports overlap, causing the target viewport to be raised to a topmost position relative to all the other viewports.
An alternative solution for the problem of icons hidden by windows is disclosed in an article by G. Fitzpatrick et al. published in IBM Technical Disclosure Bulletin vol 36, no. 6A, June 1993, pages 135-136. The authors propose a so-called "Translucent Window Attribute" where a translucent window allows objects immediately below it to show through. Hereby confusion and screen clutter of a busy desktop can be minimized.
A so-called "Icon Safe Zone" approach is disclosed in an article by L. Cahill et al. published in IBM Technical Disclosure Bulletin no. 6, Nov. 1992, pages 34-35. This safe zone is visually differentiated from the rest of the desktop through the use of shading which, for instance, can be displayed at the bottom of the desktop, wherein a user can decide which icons, e.g. those he works with the most, are placed in that safe zone. Those icons are protected from being covered by other windows.
A kind of "ghost icon" approach is disclosed in an article by J. Doran and G. Koets published in IBM Research Disclosure no. 312, April 1990 and entitled "Hidden Icon Notification". According to that approach, icons are shown briefly in a faded manner which does not obstruct the view of the current window but still can inform the user of an icon change. The proposed method allows a user to communicate with an icon hidden beneath a window although being covered.
A more particular solution concerning mobile trainable icons is disclosed in U.S. application for Ser. No. 227,149 (IBM docketno. Y0993077) assigned to the present assignee and entitled "A Method and System for Facilitating the Selection of Icons". It is proposed that those icons which are next likely to be used are selected and automatically moved towards a cursor thereby facilitating selection of the icons. The likeliness that one or more icons will be used within a predefined amount of time is determined. The appearance of those icons determined not likely to be used within that time is gradually changed. Additionally, those icons likely to be used, or other icons selected by a user, may track the cursor such that those icons are always close to the cursor and capable of being easily selected. In addition, it is possible to reduce the amount of clutter on a computer display so that icons may be easily selected. In order to clean up the computer display, icons which are least likely to be used are faded, eliminated or shrunk to a smaller size. The above approaches all have the drawback of troublesome operability and a missing realization of a virtual desktop and its desktop objects which normally can be activated by simple mouse operations.
The objective of the present invention, therefore, is to provide a mechanism to control visibility of icons in a viewport (window) environment, which allows improved visibility of icons and windows and simple and user-friendly adaptation like on a real desktop. Further the mechanism should re-organize the desktop of the GUI automatically with respect to a changing windows environment.
The underlying concept of the present invention, to solve the above objective, is that desktop objects, i.e. icons or windows, are moving to visible locations of the desktop when they are obscured by active (opened) windows which usually are a user's current focus, or other desktop objects like icons themselves. That motion can be advantageously performed without need of any interaction by the user. The proposed basic functionality can be arbitrarily adapted to different technical requirements of the GUI desktop or needs of the respective user of the GUI. In particular the invention is a very intuitive comprehensible solution of the above problems.
It is emphasized that a user's current focus on an application (program) is not restricted with regard to "opened" or "closed" viewports since icons can also be active programs running in the background, and thus an application currently focussed by a user is not only characterized by its active or non-active state.
In a first embodiment of the invention desktop objects which are provided with the above functionality regularly call up a routine which compares the actual positions of all windows or other desktop objects with the own location. Calling-up can be initiated also by changes of the desktop contents. If an icon is covered by an other object, it determines a visible target location and will be presented at the new position. A particular advantage of the proposed concept is that the development tools, programming languages and system interfaces required for implementation of the proposed mechanism are already provided by known operating systems which support mouse pointers together with windows-oriented desktop objects.
In a further embodiment of the mechanism according to the invention the user equips multiple desktop objects with self-controlling presence (visibility) functionality by use of a common "notebook" which is already provided for example by OS/2 for configuration of objects. In such a notebook the user can also activate or inactivate the presence functionality for one or more objects.
In another embodiment, the direction of motion of the objects can be controlled by priority. For instance, the desktop can be partitioned into a number (e.g. 4) quadrants each of which having assigned a different weight by the user. If a self-controlled icon is covered by an other object, it first will try to be presented at a visible portion of the desktop corresponding to a quadrant with the largest weight. The order for selecting a visible portion of the desktop can also be controlled by points of the compass or clockwise direction.
According to a further embodiment of the invention the motion of the icons can be adjusted with respect to the habit of the respective user and with respect to a most clearly arranged desktop. For instance, moving objects can be presented discreet with regard to shape, brightness or contrast of non-moved objects in order not to irritate the user who is busy with an active window. The motion of icons can also be presented invisible to the user wherein moved icons only appear at the target location.
Furthermore, the user is free in configuration of the behavior of desktop objects after close of a previously masking window. Hereby the following rules can be implemented:
The "moved" object remains at the target position; the moved object appears at the origin position which becomes visible again due to the close of the window; PA1 the object has not really "moved" to the target position, but only a copy of that object was generated at a visible portion of the desktop, wherein after close of the window the origin object as well as the copy are presented, or only the copy is discarded.
The essential features of the invention will now be explained through the embodiment examples in the following illustrations, and within the framework of a comparison with the relevant state of the art.